
//获取应用实例(获取app.js全局变量必须获取应用实例)
const App = getApp()
 
//条码、二维码生成
const wxbarcode = require("../../../lib/wxbarcode/index.js")

//网络请求封装
import Request_post from "../../../request/Request_post"
import Request_get from "../../../request/Request_get"

//系统设置项目:(请求地址-在封装中已经引入，这里不需要;   api调用的Appid-partner_app_id;   渠道ID-as_appid)
import config, {imageUrl} from '../../../config/config'; 

// 缓存rul图片到本地
import cacheimg from "../../../utils/cacheImg"

//引入时间函数
var date = require("../../../utils/CustomFunction/getDayFirstNowLast.js")
var time = require("../../../utils/CustomFunction/getNowTime.js")


Page({

	
	/* 页面的初始数据 */
	data: {

		pageImage: 
    [ 
			{key: "ownbackground_image",value: config.imageUrl+"ownbackground.jpg"},
			{key: "more_image",value: config.imageUrl+"more.png"},
			{key: "mbr_rigint",value: config.imageUrl+"mbr_rigint.png"},
			{key: "lvl",value: config.imageUrl+"lvl.png"},
			// {key: "getButtoon",value: config.imageUrl+"getButtoon.png"},
			{key: "close",value: config.imageUrl+"close.png"},
			{key: "erweima",value: config.imageUrl+"erweima.png"},
			{key: "code",value: config.imageUrl+"code.png"},
			{key: "Guestbackground",value: config.imageUrl+"Guestbackground.jpg"},
			{key: "AvailableGiftBag",value: config.imageUrl+"AvailableGiftBag.png"},
    ],


		//可领礼包显示（默认不显示false）
		display_AvailableGiftBag:false, 

		imageUrl:config.imageUrl,

		//会员奖励显示标志（默认不显示false）
		display_newRegItgAdd:false, 
		
		//会员支付码显示控制
		display_code:false,

		//虚拟会员卡显示控制
		VirtualCard_Show:false,

		//虚拟会员卡中的（微信头像+昵称+会员类型）显示控制
		Virtual_card_Headimage_userNickName_show:false,

		//微信登录用户信息（微信头像+昵称+会员类型）显示（行显示）控制
		line_wx_userinfo_Show:true,

		//跑马灯显示控制
		marquee_Show:true,

		//轮播图显示控制
		RollPlayPicture_Show:true,


	},

	/** 外链图片Url资源，缓存到本地 */
  storeImage:function(){
    var that = this
    let obj = {}
    let pageimgArr = that.data.pageImage
    // pageimgArr.forEach(i => {i.value = config.domainName + i.value.split('/').slice(3).join('/')})
    pageimgArr = pageimgArr.map(i => ({
      ...i,imgpath:cacheimg.mapCacheUrl(i.value)
    }))  
    pageimgArr.forEach(i => {obj[i.key] = i.imgpath})
    that.setData({pageStoreimg: obj })
    // console.log(that.data.pageStoreimg)
  },

	

	/* 生命周期函数--监听页面加载 */
	onLoad: function (options) {
		var that = this
		
		that.setData({
			SnowAnimationShow: wx.getStorageSync('StrMktopt').SnowAnimationShow
		 })

		// 会员是否注册的标志regflg
		getApp().loginPromise.then(v => {	//app.js的Promise成功回调（全局变量赋值成功后才执行请求）
			that.setData({regflg: App.globalData.regflg})
		})
		// console.log(App.globalData.regflg)

		// 是否新会员注册、新会员注册奖励积分值（regbind页面 || Member_PersonaliInfor_Input页面 传递进来的参数）
		let mbrregflg = options.mbrregflg
		let mbrregItg = options.mbrregItg
		if(mbrregflg == 'y' && mbrregItg){
			// 顶部消息通知的赋值
			Notify({
			message: '新会员注册送积分 ['+mbrregItg+'积分] 已到账',				//通知详情描述
			color: '#FFFFFF',					//通知栏字体颜色
			background: '#07C160',		//通知栏背景色
			duration: 5000,						//持续时长
			});
		}


		/** Api请求 基础信息查询-wxmkt_baseinfo-005-微会员功能配置查询 **/
		Request_get.get(
			config.domainName+"api_wxmkt_baseinfo/wxmbrfuns",
			{}, 
			function(res){
				// console.log(res)
				if(res != "undefined" && res.return_no == 1){
					if(App.globalData.Erpimage_Locstr ==='y'){
						let array = res.return_data
						//将回调结果中的imgurl地址，转换为域名（原地址为：http://ip:port/xxx 转换为：https://域名/xxx）
						for(var i in array){
							if(array[i].imgurl){
								array[i].imgurl = config.domainName + array[i].imgurl.split('/').slice(3).join('/');
							}
						}
						// 调用本地文件缓存方法 mapCacheUrl
						that.setData({
							funlstinfo:array.map(i => ({
								...i,
								imgpath:cacheimg.mapCacheUrl(i.imgurl)
							}))  
						}) ;
					}else{
						// 使用res的原始回调（数组对象中增加一个imgpath的属性值，因为html标签中用imgpath做渲染）
						that.setData({
							funlstinfo:res.return_data.map(i => ({
								...i,
								imgpath:i.imgurl
							}))  
						})
					}
					// console.log(that.data.funlstinfo)

					//重构数组对象newlist：[显示分组标题]
					let list = that.data.funlstinfo
					let newlist = []
					for(var i = 0; i < list.length; i++ ){
						let obj = {}
						obj.disgrpid = list[i].disgrpid
						obj.disgrpdes = list[i].disgrpdes
						newlist.push(obj)
					}
					// newlist数组去重 : 
					for (var i = 0; i < newlist.length;i++) {
						for (var j = 1; j < newlist.length;j++) {
							if(newlist[i].x == newlist[j].x){
								newlist.splice(i,1)
							}
						}
					}
					that.setData({funGroupList:newlist})
					// console.log(that.data.funGroupList)
					wx.showLoading({			//加入一个加载中的提示框，即：显示一个加载中的画圈圈的提示框，直到数据请求成功（需要结束画圈圈,需要wx.hideLoading()）
						title: '功能加载中',
					});
				}else{
					wx.hideLoading() 
					wx.showModal({
						title:'会员开发功能列表获取失败',
						showCancel:false,
					})
				}
			}
		)

		/*-------------------- Begin 当本页面接受到 rulechbllno参数（微信扫一扫 扫码领券）执行扫码领券操作 --------------------*/

		if(App.globalData.rulechbllno != "null" && App.globalData.copcltid != "null" && App.globalData.mbl){
			getApp().loginPromise.then(v => {	//app.js的Promise成功回调（全局变量赋值成功后才执行请求）
				let bllno = App.globalData.mbrid + Math.round(new Date() / 1000)	// 在线充值单单号：mbrid+时间戳
        let mbrparams = wx.getStorageSync('StrMbrInfo').mbrparams
        that.setData({bllno,mbrparams})

				// 优惠券秒杀-echcopseckill 秒杀下单
				Request_post.post(
					config.domainName+"api_echcopseckill/buycopseckill",
					{
						bllno: that.data.bllno,
						rulechbllno: App.globalData.rulechbllno,           //微信扫一扫获取到的参数：规则单号
						echmodid: "01",
						qty: 1,
						mbrparams: that.data.mbrparams
					},
					function(res){
						console.log(res)
						if(res != 'undefined' && res.return_no == 1){
							console.log('秒杀下单成功：回调信息存缓存',res)
							// 秒杀下单成功：回调信息存缓存
							wx.setStorageSync('StrCopseckillodr',res.return_data)

							/* Api请求：优惠券服务-echcopsrv 001-扫码领券 */
							Request_post.post(
								config.domainName+"api_echcopsrv/scnechcop",
								{
									srcbllno: that.data.bllno,
									copcltid: App.globalData.copcltid,             //二维码携带的参数：发券商服号
									echtmnid: config.echtmnid,
									rulechbllno: App.globalData.rulechbllno,       //微信扫一扫获取到的参数：规则单号
									mbrparams:	that.data.mbrparams
								},
								function(res){
									if(res != "undefined" && res.return_no == 1){
										//初始化微信扫一扫获得的扫码领券的规则单号 及 发券商服号，避免重复循环领券
                    				App.globalData.rulechbllno = "null";           
										App.globalData.copcltid = "null";  
										that.setData({
											msg:res.return_msg,
											copid:escape(res.return_data.copid)
										})
										wx.redirectTo({
											url:"/SubpkgMarketing/pages/Coupon/GetCopSuccess/GetCopSuccess?copid="+that.data.copid+"&msg="+that.data.msg
										})	
									}else{
										//初始化微信扫一扫获得的扫码领券的规则单号 及 发券商服号，避免重复循环领券
										App.globalData.rulechbllno = "null";           
										App.globalData.copcltid = "null";  
										// 获取券失败：取消秒杀下单
										that.CancelBuycopOdr();
										that.setData({
											msg:res.return_msg,
										})
										wx.redirectTo({
											url:"/SubpkgMarketing/pages/Coupon/GetCopFailed/GetCopFailed?msg="+that.data.msg
										})
									}
								}
							)
						}else{
							//初始化微信扫一扫获得的扫码领券的规则单号 及 发券商服号，避免重复循环领券
							App.globalData.rulechbllno = "null";           
							App.globalData.copcltid = "null";  
							wx.showModal({
								content: res.return_msg,
								showCancel: false,		//是否显示取消按钮
								confirmText:"确认",		//默认是“确定”
								confirmColor: 'skyblue',	//确定文字的颜色  
							})
						}
					}
				)
			})
		}
			/* -------------------- end 当本页面接受到 rulechbllno参数（微信扫一扫 扫码领券）执行扫码领券操作 --------------------*/




			/* -------------------- 当主页面为当前页面时：检查当前会员是否有礼包活动 (在onload中第一次渲染才弹，在onshow中只要一回到页面就弹) -------------------- */
			getApp().loginPromise.then(v => {	 //app.js的Promise成功回调（全局变量赋值成功后才执行请求）

				// 页面的Titlebar标题
				let StrSysreginfo = wx.getStorageSync('StrSysreginfo')
				wx.setNavigationBarTitle({
					title: StrSysreginfo.wxmbr_hometitle
				})
				that.setData({																			
					function_layout: wx.getStorageSync('StrSysreginfo').wxmbr_homestyle,	//功能区布局
				})


				if(App.globalData.homePage == '/pages/HomePage/Member_HomePage/Member_HomePage'){
					/** Api请求：11-003 会员礼包列表查询 **/
					Request_get.get(
						config.domainName+"api_wxmkt_server/mbrpkg/listmbrpkg",
						{
							typid:"%", // 礼包类型 %-全部礼包活动（只要有一个活动，就弹窗显示可以领取礼包）
							vldflg:"",
							echflg:"n", 
						},
						function(res){
							console.log(res)
							if(res != "undefined" && res.return_no == 1){
								// console.log(res)
								if(res.return_data.length > 0){
									for(var i = 0; i < res.return_data.length; i++){
										if(res.return_data[i].vldqty > 0 && res.return_data[i].echflg == 'n'){   // 可以领取的数量 > 0 && 领取标志 == n
											that.setData({
												display_AvailableGiftBag:true       //可以领取大礼包，显示大礼包可领样式（必须要可领数量 > 0 时才能显示出可领样式，否则，礼包倒是有的，但是已经被领完了就麻烦了）
											})
											break;
										}else{
											that.setData({display_AvailableGiftBag:false})   //没有可以领取的大礼包，屏蔽大礼包可领样式
										}
									}
									// console.log(that.data.bllno)
								}else{
									that.setData({display_AvailableGiftBag:false})   //没有可以领取的大礼包，屏蔽大礼包可领样式
								}
							}
						}
					)
				}
			})


			// 查询会员信息-------04-001:会员信息查询（验证已绑定）
			Request_get.get(
				config.domainName+"api_wxmkt_server/mbrreg/findwxmbr",
				{},
				function(res){
					// console.log(res)
					if(res != "undefined" && res.return_no == 1){
						if(App.globalData.Erpimage_Locstr ==='y'){
							let array = res.return_data
							//将回调结果中的imgurl地址，转换为域名（原地址为：http://ip:port/xxx 转换为：https://域名/xxx）
							if(array.mbrclsimgurl){
								array.mbrclsimgurl = config.domainName + array.mbrclsimgurl.split('/').slice(3).join('/')
							}
							// 调用本地文件缓存方法 mapCacheUrl
							array.imgpath = cacheimg.mapCacheUrl(array.mbrclsimgurl)
							that.setData({
								mbr_info: array
							})
						}else{
							// 使用res的原始回调（数组对象中增加一个imgpath的属性值，因为html标签中用imgpath做渲染）
							let object = res.return_data
							object.imgpath = res.return_data.mbrclsimgurl
							that.setData({
								mbr_info:object,
							})
						} 
						//生成会员支付一维码&二维码 Api接口：03-001：会员动态识别码查询
						Request_get.get(
							config.domainName+"api_wxmkt_server/mbrbsc/finddynmbrid",
							{},
							function(res){
								// console.log(res)
								wxbarcode.barcode('barcode',res.return_data.barcode,550, 120);
								wxbarcode.qrcode('qrcode',res.return_data.barcode,400,400);
							}
						)
					}
				}
			)
			
		

	},



	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {
		var that = this


		// 外链资源图片链接 本地缓存
    if(App.globalData.ResourcesLink_Locstr === 'y'){
      that.storeImage();
    // 外链资源图片链接 直接读取url地址
    }else{
      let pageimgArr = that.data.pageImage
      let object = {}
      pageimgArr.forEach(i => {object[i.key] = i.value}) // 数组转换为对象
      that.setData({pageStoreimg: object })
      // console.log(that.data.pageStoreimg)
		}
	
	},


	/* 生命周期函数--监听页面初次渲染完成 */
	onReady: function () {

	},

	

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	},

	 /**会员资料修改 */
	 Mbrinfo:function(){
    wx.redirectTo({
      url:"/pages/Member/member_Information/member_Information"
    })
  },
  
  /**点击二维码重新生成：一维码&二维码 */
  Generate_code:function(){
    Request_get.get(
			config.domainName+"api_wxmkt_server/mbrbsc/finddynmbrid",
			{},
			function(res){
				console.log(res)
				wxbarcode.barcode('barcode',res.return_data.barcode,550, 120);
				wxbarcode.qrcode('qrcode',res.return_data.barcode,400,400);	
				// wxbarcode.barcode('barcode',App.globalData.mbrid + Math.round(new Date() / 1000) ,550, 120);
				// wxbarcode.qrcode('qrcode',App.globalData.mbrid + Math.round(new Date() / 1000) ,400,400);
			}
		)
	},

  /** 显示支付码 */
  codeShowNav_on:function(e){
    this.setData({
			display_code:true
		})
		this.Polling();
    // console.log(this.data.display_code)
	},
	
  /** 关闭支付码 */
  codeShowNav_off:function(i){
    this.setData({
			display_code:false
		})
		clearInterval(this.timeID)
    // console.log(this.data.display_code)
	},


	// 轮询 (间隔30秒，变化条码、二维码) 无终止条件，一直轮询处理
  Polling:function(){
		var that = this
		var PollingCodeTime = wx.getStorageSync('StrMktopt').PollingCodeTime * 1000
		that.setData({PollingCodeTime})
    	// var num = 1
		that.timeID = setInterval(() =>{  // 定义轮询 
			that.Generate_code();  	
				if(that.data.display_code == false){
					clearInterval(that.timeID) 
				}
			// if(num > 5){                    // 满足条件时终止轮询（本例中时按执行的次数，实际中可按：如得到某个回调结果....）
			//   clearInterval(that.timeID)    // 终止轮询
			//   console.log('轮询结束')
			// }else{
			//   that.mbrRequest()             // 轮询执行的事务
			//   console.log('第'+num+'次轮询')
			//   num++
			// }
		},PollingCodeTime)                           // 每次轮询的间隔时间（单位：毫秒）
	},
	




	//未注册会员点击注册
  regNow:function(){
    wx.redirectTo({ 
      url:"/SubpkgPublicPage/pages/PublicPage/PrivacyPolicy/PolicyMain/PolicyMain"
    });
	},
	
  //大礼包点击领取事件
  GetGiftBag:function(){
    this.setData({
      display_AvailableGiftBag:false
    })
    wx.navigateTo({
    url: '/SubpkgMarketing/pages/GiftPack/AvailableGifPack/AvailableGifPack',
    })
	},
	
  //关闭新会员注册奖励
  AvailableGiftBag_show_off:function(){
    this.setData({
      display_AvailableGiftBag:false
    })
  },

  //大礼包点击领取事件
  GetGiftBag:function(){
    this.setData({
      display_AvailableGiftBag:false
    })
    wx.navigateTo({
    url: '/SubpkgMarketing/pages/GiftPack/AvailableGifPack/AvailableGifPack',
    })
	},
	
  //关闭新会员注册奖励
  AvailableGiftBag_show_off:function(){
    this.setData({
      display_AvailableGiftBag:false
    })
  },
	

	
	/** 数组去重 (该方法未使用)*/
	ArrayRemRep:function() {
		unique(that.data.funlstinfo)
		return Array.from(new Set(arr))
	},




})








// Page({
//   data: {
//     show: false,
//   },

//   onClickShow() {
//     this.setData({ show: true });
//   },

//   onClickHide() {
//     this.setData({ show: false });
//   },
// });